class Solution {
public:
    int totalFruit(vector<int>& fruits) {
        unordered_map<int,int> hash;//存水果的种类和果树的数量
        int sz=fruits.size();
        int left=0,right=0,ret=0;
        while(right<sz)
        {
            hash[fruits[right]]++;
           while(hash.size()>2)
            {
                hash[fruits[left]]--;
               if(hash[fruits[left]]==0)
               {
                hash.erase(fruits[left]);
               }
               left++;
            }
            ret=max(ret,right-left+1);
            right++;
        }
        return ret;
    }
};
